home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 1
/
Cream of the Crop 1.iso
/
PRINTER
/
FINEPRNT.ARJ
/
FINEPRNT.DOC
< prev
next >
Wrap
Text File
|
1991-01-20
|
12KB
|
253 lines
NAME
fineprnt --- fine printing on an hp+ or compatible laser printer
SYNOPSIS
fineprnt options filenames
DESCRIPTION
Fineprnt prints ascii or binary files in a column oriented manner on an hp+
or compatible laser printer. It uses a small 6pt fixed or proportionally
spaced font downloaded before printing. The printout can be tuned to any
paper size, portrait or landscape mode. Double sided printing is supported
with page layout adjusted to odd (right hand side) and even (left hand side)
pages. It is typically used to print program listings, readme files and the
like in a very compressed form.
Fineprnt is a stand-alone program but supports an environment variable and
an optional configuration file.
OPTIONS
Options and filenames (which can contain wildcards) can be given in any
order, however, all options are processed before printing starts, and all
files are printed with the same setting. Options must be separated by spaces.
In the following list, # stands for an integer number, ? for a single
character and * for a string of characters. Defaults, given in parentheses,
are adjusted for standard A4 paper in portrait mode. The values for some
length parameters are in dots, one dot being 1/300 inch, the resolution of
the hp+ printer.
Note that the area of print does not usually coincide with the physical
size of the paper. The margin parameters, therefore, do not necessarily
count from the borders of the sheet.
Before printing all files are scanned to determine the number of columns and
lines for each file and to search for lines that may have to be truncated.
-c# Number of characters per line (80). This parameter controls the
width of each column. When the proportional font is selected the
actual number of characters printed can be more or less, depending
on the total width being less or more of that what the fixed
spacing font would produce.
-l# Number of lines per column (132). This parameter controls the page
length.
-s# Number of columns per page (2).
-o# Left margin in dots (175) on all pages in single sided mode, or on
odd pages in 2-sided mode.
-e# Left margin in dots (0) on even pages in 2-sided mode. If landscape
mode and 2-sided printing is specified, this parameter applies to
the upper margin on even sides.
-u# Upper margin in dots (0). If landscape mode and 2-sided printing is
specified, this parameter applies to the upper margin on odd sides
only.
-b# Baselineskip in dots (24). A value less than 24 is not recommended.
A larger value might yield a slightly better readability, but at
the cost of less lines fiting on the page.
-a# First page to print (1).
-z# Last page to print (last page of this print job).
-t# Set tab stops every # characters (8).
-w# Wrap option for lines longer than the column width:
1 Wrap lines.
0 Truncate lines (the default).
-1 Continue printing beyond the column width.
-f# Frame around each column:
0 No frame.
1 Vertical lines as separator between columns only.
2 Horizontal lines above and below each column.
3 A box around each column (the default).
-h# Header and footer for each column:
0 No header or footer.
1 Print filename as header only.
2 Print column number as footer only.
3 Filename as header, column number as footer.
4 As above, plus information on file modification and the
total number of columns for this file (the default).
-n# Option for line numbering. If a positive number is specified lines
are numbered consecutively, starting from 0 for each file,
incremented by the given number. Note that column 2 and higher are
shifted a further 4 character spaces each to the right to
accommodate room for the line numbers. If a negative number is
given, only the innermost column of each page is numbered, starting
from 0 on each page and incremented by the absolute value of the
given number. Column alignment is not changed in this case.
The default is 0, no line numbering.
-#[e/o] Specify one/two-sided or no printing:
-2 2-sided printing, odd sides first, prompt to print even sides
-2e 2-sided, even sides only (off)
-2o 2-sided, odd sides only (off)
-1o 1-sided, margins as for odd sides, same as -1 (default)
-1e 1-sided, but margins as for even sides
-0 don't actually print, find number of columns for each file
only.
-B?[.] Dump bytes instead of ascii interpretation. The character following
the -B indicates: X=HEX, x=hex, o=octal or b=binary representation.
Any other or no character defaults to ascii interpretation. An
optional period (.) changes any zeros in the print into periods,
which may improve readability in some circumstances.
-P* direct output:
If a single digit is given after the -P it specifies the printer
port, the default is 1.
For any other string following -P the output is redirected (append
mode) into a file named by the given string.
-F? Select font, f = fixed, p = proportional, default is f.
-O? Page orientation, p = portrait, l = landscape (p).
-N? To start a new file, advance
l 5 lines
h to next half column
c to next column
p to a new side
s to a new sheet
x variable: if the next file fits in the same column (including 5
empty separation lines), it is printed there. Otherwise, the
current column is ended, and if the new file entirely fits in one
column, it is printed in the next one. If it exeeds one column,
printing starts on a fresh side. If it exeeds one side printing
starts on a new sheet (which is only different from a new side
if 2-sided printing is active and the last file ended on an odd
side).
-D* Directory containing fineprnt.cfg (.).
-E* Disregard any characters between a form-feed and the next newline
character: -Eon switches this feature on. Any other string
following -E means off (default is off).
-Z* Recognise ctrl-Z as file terminator. -Zon activates this feature,
any other string after -Z means off (default is off).
USER-DEFINED OPTIONS
When an option is not found under those listed above, a file fineprnt.cfg is
searched (see under FILES) and scanned for a line whose first word (a string
followed by one or more blank spaces) matches that option (stripped of the
introducing character - or /). If a match is found, the rest of that line is
parsed for options, just like command line options or the value of the
environmental variable, with the only difference that nesting is not
possible. Note that the name of a user-defined option cannot start with one
of the 8 upper case letters B, D, E, F, N, O, P or Z. It can start with any
lower case letter, but if it is one of a, b, c, e, f, h, l, n, o, s, t, u,
w, or z, the second character must not be a digit, - or +.
This feature is thought to provide a convenient way to abbreviate a set of
options to customise the program to individual taste or printer set-ups. An
example: If fineprnt.cfg exists and contains the following line
quer -Ol -l88 -u27 -s3 -2 -o85
typing
fineprnt -quer myfile
will print myfile in landscape mode, with 88 lines per column, 3 columns per
page, etc.
ENVIRONMENT
FINEPRNT --- a list of options processed before (and overridden by) command
line options. The environment variable is optional.
FILES
finepnrt.cfg --- an optional ascii file containing sets of user-defined
options. If the -D option is not specified, the file is first searched in the
current directory and than in the directory containing fineprnt.exe. The
file need not exist.
FYI
In ascii mode formfeed characters act as a vertical tab of half a column
distance: If the current column is less than half filled, printing continues
at line 1+l/2 where l is the number of lines per column. If the current
column is more than half filled, printing continues in the next column.
Backspace characters are sometimes used to simulate bold printing on
dot-matrix printers. This has no effect, however, on a laser printer. To
follow the dot-matrix printer convention char-\b-char sequences are rendered
by shifting the second printed character one dot to the right and upwards
which gives the appearance of a bolder stroke width.
RESTRICTIONS
Only standard printable ascii characters can be handled. Unfortunately
IBM and HP implemented different sets of extended characters, requiring a
remapping. Extended characters are on the list of things to do. I might
tackle this after my return to Europe.
LIMITATIONS
The maximum number of charaters per line is 511. The maximum length of a
command line is 128 characters. The number of files to be printed is only
limited by the amount of memory available to store their names.
The total number of characters on a normal A4 page can be 20,000 or more. A
page with little white space (as it may occur when using the -B option) can
exhaust the printer's memory, which results in a "page too complex" error on
the printer. Apart from adding memory to the printer, the only remedy is to
reduce the number of total characters per page using the -c, -l, or -s
options.
CAVEATS
The program has only been tested on 8086, 80286 and 80386 processors, under
DOS 3.2 and 3.3 and with the following printers: hp3, Epson GQ-3500 and
Dataproducts LZR-1230, the latter two emulating an hp+. It should run under
any DOS 2.0 or higher.
SHAREWARE
If you use fineprnt beyond an evaluation period, send $20 to the
Trees-For-Life people, Greenpeace or any other environment protection
organisation of your choice. If you don't use this program to print your
ascii files, send 1 cent for each page you print to Trees-For-Life anyway.
Fineprnt is free if used to print on recycled paper. If you don't comply
with this rules, you must plant one tree for each 50 pages you print.
AUTHOR
Jorg Hartmann
FIAMS, Flinders University of South Australia, Bedford Park SA 5042.
e-mail: mojh@research.cc.flinders.edu.au
I will be leaving Australia in early March 1991, and from April 1991 I
will be at
Alfred Wegener Institut f\"ur Polar- und Meeresforschung
Columbusstrasse, 2850 Bremerhaven, Germany.
e-mail: postmaster@vax.awi-bremerhaven.dbp.de
Copyright (c) 1990, 1991 Jorg Hartmann. Version 1.3